#!/usr/bin/env python3
"""
管理员初始化脚本
创建默认的超级管理员账号
"""

from app import create_app, db
from app.models.admin import Admin
from app.models.role import Role
from app.models.department import Department

def init_admin():
    """初始化默认管理员"""
    app = create_app()
    
    with app.app_context():
        print("=== 管理员初始化 ===")
        
        # 检查是否已经有管理员
        existing_admin = Admin.query.filter_by(username='admin').first()
        if existing_admin:
            print(f"管理员 'admin' 已存在，状态: {'启用' if existing_admin.status else '禁用'}")
            return
        
        # 创建默认部门（如果不存在）
        department = Department.query.filter_by(name='系统部门').first()
        if not department:
            department = Department(
                name='系统部门',
                manager='系统管理员',
                status=True,
                order_num=1
            )
            db.session.add(department)
            db.session.flush()  # 获取ID
            print(f"创建默认部门: {department.name}")
        
        # 创建默认角色（如果不存在）
        role = Role.query.filter_by(name='超级管理员').first()
        if not role:
            role = Role(
                name='超级管理员',
                description='系统超级管理员，拥有所有权限',
                data_scope='all',
                status=True
            )
            db.session.add(role)
            db.session.flush()  # 获取ID
            print(f"创建默认角色: {role.name}")
        
        # 创建管理员
        admin = Admin(
            admin_name='系统管理员',
            username='admin',
            role_id=role.id,
            department_id=department.id,
            status=True
        )
        admin.set_password('123456')
        
        db.session.add(admin)
        db.session.commit()
        
        print(f"✅ 创建管理员成功:")
        print(f"   用户名: {admin.username}")
        print(f"   密码: 123456")
        print(f"   角色: {role.name}")
        print(f"   部门: {department.name}")
        print(f"   状态: {'启用' if admin.status else '禁用'}")

if __name__ == '__main__':
    init_admin() 